var updateUrl = null;;
var updateTableName = null;
/**
 * bootstrapTable自动适应高度
 */
function autoHeightTable() {
    //设置bootstrapTable起始的高度
    $('#table').bootstrapTable({height:$(window).height()-120});
    //当表格内容的高度小于外面容器的高度，容器的高度设置为内容的高度，相反时容器设置为窗口的高度-160
    if($(".fixed-table-body table").height()<$(".fixed-table-container").height()){
        $(".fixed-table-container").css({"padding-bottom":"0px",height:$(".fixed-table-body table").height()+20});
        // 是当内容少时，使用搜索功能高度保持不变
        $('#table').bootstrapTable('resetView',{height:"auto"});
    }else{
        $(".fixed-table-container").css({height:$(window).height()-150});
    }
}

function rowStyle(row, index) {
    var classes = ['active', 'success', 'info', 'warning', 'danger'];

    if (index % 2 === 0 && index / 2 < classes.length) {
        return {
            classes: classes[index / 2]
        };
    }
    return {};
}
function editableConfig(idName, type, pk, title, url) {
    $("#" + idName).editable({
        type: type,
        pk: pk,
        url: url,
        title: title,
        placement: 'right',
        rows: 8,
        success: function (rspData, newValue) {
            // 有返回既有错误
            if (rspData.code <= 0 || rspData.code == null) {
                return rspData.message;
            }
        }
    });
}
function editableModify(rowName, type, title, row) {
    $("#" + (row.id + rowName)).editable({
        type: type,
        pk: JSON.stringify({"table_name": updateTableName, pk: row.id}),
        name:rowName,
        url: updateUrl,
        title: title,
        placement: 'right',
        rows: 8,
        success: function (rspData, newValue) {
            // 有返回既有错误
            if (rspData.code <= 0 || rspData.code == null) {
                return rspData.message;
            }
        }
    });
}

function statusEditableModify(rowName, title, row,source) {
    // 状态可编辑
    $('#'+ (row.id + rowName)).editable({
        type:'select',
        pk: JSON.stringify({"table_name": updateTableName, pk: row.id}),
        name:rowName,
        url:updateUrl,
        title: title,
        value: row[rowName],
        placement:'left',
        source: source,
        success:function(rspData,newValue) {
            // 有返回既有错误
            if(rspData.code <= 0) {
                return rspData.data;
            }
        }
    });
}

function initBootstrapTable(url, columns, onLoadSuccess) {
    $('#table').bootstrapTable({
        url: url,         //请求后台的URL（*）
        method: 'GET',                      //请求方式（*）
        toolbar: '#toolbar',                //工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true,                   //是否显示分页（*）
        sortOrder: "desc",                   //排序方式
        sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                       //初始化加载第一页，默认第一页
        pageSize: 10,                       //每页的记录行数（*）
        pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
        search: true,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
        showColumns: true,                  //是否显示所有的列
        showRefresh: true,                  //是否显示刷新按钮
        minimumCountColumns: 2,             //最少允许的列数
        // clickToSelect: true,                //是否启用点击选中行
        height: 'auto',                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
        uniqueId: "id",

        rowStyle: rowStyle,//通过自定义函数设置行样式
        //得到查询的参数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一致，这边改动，控制器也需要改成一样的
            var temp = {
                page_size: params.limit,                         //页面大小
                page_num: (params.offset / params.limit) + 1,   //页码
                sort: params.sort,      //排序列名
                order: params.order, //排位命令（desc，asc）
                search: params.search
            };
            return temp;
        },
        columns: columns,
        onLoadSuccess: function (data) {
            autoHeightTable();
            onLoadSuccess(data);
        },
        onLoadError: function () {
            showTips("数据加载失败！");
        },
        onClickCell: function (field, value, row, $element) {
            if (field == 'operation' || field == "content" || field == "status_id") {
                // 操作点击 删除编辑
            } else {
                console.log(field);
                console.log(value);
                console.log(row);
            }
        }
    });
}
function batchDelete(url, noticeMsg) {
    $("#btn_delete").click(function () {
        // 批量删除
        var selectRow = $('#table').bootstrapTable('getSelections');
        if (selectRow.length < 1) {
            $.toaster({priority: "warning", title: "通知", message: "内容未选中！"});
            return false;
        }
        var ids = new Array();
        for (var i = 0; i < selectRow.length; i++) {
            ids[i] = selectRow[i].id;
        }
        if (confirm(noticeMsg)) {
            $.ajax({
                url: url,
                type: 'delete',
                data: {
                    "ids": ids,
                },
                success: function (data) {
                    console.log(data.code);
                    if (data.code == 1) {
                        $('#table').bootstrapTable('refresh');
                    } else {
                        $.toaster({priority: "danger", title: "通知", message: data.message});
                    }
                },
                error: function () {
                    $.toaster({priority: "danger", title: "通知", message: "批量删除失败!"});
                }
            })
        }
    });
}

function deleteData(row) {
    $.ajax({
        url: "/admin/com/delete",
        data: {
            id: row.id,
            table_name: updateTableName
        },
        type: 'delete',
        success: function (data) {
            console.log(data.code);
            if(data.code == 1) {
                $.toaster({ priority : "success", title : "通知", message : "删除成功" });
                $('#table').bootstrapTable('refresh');
            } else {
                $.toaster({ priority : "danger", title : "通知", message : "删除失败!" });
            }
        },
        error: function () {
            $.toaster({ priority : "danger", title : "通知", message : "删除失败!" });
        }
    })
}

function rowsFormatter(value, row, index) {
    var pageSize = $('#table').bootstrapTable('getOptions').pageSize;     //通过table的#id 得到每页多少条
    var pageNumber = $('#table').bootstrapTable('getOptions').pageNumber; //通过table的#id 得到当前第几页
    return pageSize * (pageNumber - 1) + index + 1;    // 返回每条的序号： 每页条数 *（当前页 - 1 ）+ 序号
}

function textFormatter(value,row,index) {
    return '<a id="' + row.id + this.field + '"data-type="text" value="'+row.id+'">'+value+'</a>';
}

function textareaFormatter(value,row,index) {
    return '<a style="word-break:break-all" id="' + row.id + this.field + '"data-type="textarea" value="'+row.id+'">'+value+'</a>';
}

function initTablePara(url, tableName) {
    updateUrl = url;
    updateTableName = tableName;
}